$(function() {
	var url = location.search; // 获取url中"?"符后的字串
	path = location.host;
	var theRequest = new Object();
	if (url.indexOf("?") != -1) {
		var str = url.substr(1);
		strs = str.split("&");
		for (var i = 0; i < strs.length; i++) {
			theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
			userName = theRequest[strs[i].split("=")[0]];
		}
	}
	init();
});
//页面初始化调用方法
function init() {
	var tableInit = new TableInit();
	tableInit.Init();
	$('#testManualTables').bootstrapTable('hideColumn','ID');
}
var TableInit = function() {
	var oTableInit = new Object();
	// 初始化Table
	oTableInit.Init = function() {
		$('#testManualTables').bootstrapTable({
			url : '../../../manualTest/queryManualTest', // 请求后台的URL（*）
			method : "POST",
			contentType : "application/x-www-form-urlencoded",
			toolbar : "#toolbar",
			striped : true, // 是否显示行间隔色
			cache : false, // 是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
			pagination : true, // 是否显示分页（*）
			sortable : true, // 是否启用排序
			sortName : "CREATE_TIME",
			sortOrder : "DESC",
			checkboxHeader : false,// 是否显示表头的全选
			queryParamsType : "undefined", // 排序方式
			queryParams : oTableInit.queryParams,// 传递参数（*）
			sidePagination : "server", // 分页方式：client客户端分页，server服务端分页（*）
			pageNumber : localStorage.getItem("currentManualPage")?parseInt(localStorage.getItem("currentManualPage")):1, // 初始化加载第一页，默认第一页
			pageSize : 10, // 每页的记录行数（*）
			pageList : [ 10, 25, 50, 100 ], // 可供选择的每页的行数（*）
			search : false, // 是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
			strictSearch : true,
			showColumns : true, // 是否显示所有的列
			minimumCountColumns : 2, // 最少允许的列数
			clickToSelect : true, // 是否启用点击选中行
			height: 500,// 行高，如果没有设置height属性，表格自动根据记录条数觉得表格高度
			uniqueId : "id", // 每一行的唯一标识，一般为主键列
			showToggle : true, // 是否显示详细视图和列表视图的切换按钮
			cardView : false, // 是否显示详细视图
			detailView : false,
			singleSelect:false,
			onDblClickRow: function (item, $element) {//双击事件，item为该行数据
				BootstrapDialog.show({
					title : '提示',
					message : "是否重新录制?",
					buttons : [ {
						icon : 'glyphicon glyphicon-check',
						label : '确定',
						cssClass : 'btn-primary',
						autospin : true,
						action : function(dialogRef) {
							dialogRef.close();
							//清理保存操作的本地数据
							localStorage.clear();
							getInTastk(item.ID,0);
						}
					}, {
						label : '取消',
						action : function(dialogRef) {
							dialogRef.close();
						}
					} ]
				});
	           },
           onLoadSuccess:function(){
	            $('.bootstrap-table tr td').each(function () {
	                $(this).attr("title", $(this).text());
	                $(this).css("cursor", 'pointer');
	            });
	        },
			responseHandler : function(res) {
				return getTableData(res);
			}, // 是否显示父子表
			columns : [ {
				checkbox : true,
				title : "选择"
			}, {
				field : 'ID'
			}, {
				field : 'MANUAL_NAME',
				title : '测试任务名称'
			}, {
				field : 'MANUAL_CODE',
				title : '测试任务编号'
			}, {
				field : 'MANUAL_DES',
				title : '任务描述',
				width: 350,
				cellStyle:{ 
					css:{ 
					"overflow": "hidden", 
					"text-overflow": "ellipsis", 
					"white-space": "nowrap" 
					} 
				}
			}, {
				field : 'CREATE_TIME',
				title : '创建时间'
			}, {
				field : 'MANUAL_USER',
				title : '创建人'
			},{
				field : 'PLATFORM_NAME',
				title : '平台名称'
			},{
				field : 'PLATFORM_ID',
				visible : false
			} ]
		});
	};
	// 得到查询的参数
	oTableInit.queryParams = function(params) {
		localStorage.setItem("currentManualPage", params.pageNumber);
		var temp = { // 这里的键的名字和控制器的变量名必须一直，这边改动，控制器也需要改成一样的pageSize,
			// pageNumber, searchText, sortName, sortOrder
			pageSize : params.pageSize, // 页面大小
			pageNumber : params.pageNumber, // 页码
			sortName : params.sortName,
			sortOrder : params.sortOrder,
			manualName : $('#manualName').val(),
			manualCode : $('#manualCode').val(),
			manualUser : $('#manualUser').val(),
			isSimulat:1
		};
		return temp;
	};
	return oTableInit;
};
//新建任務
function addManualTestTask() {}
function initPlatformOption(content){
	var sli = '';
	for (var i = 0; i < content.length; i++) {
		var platFormId = content[i].platformId;
		var platFormName = content[i].platformName;
		sli += '<option value="' + platFormId + '">' + platFormName
		+ '</option>';
	}
	var $li = $(sli);
	$('#platformId').append($li);
}
//type:0测试中如果不点击开始录制，所有其他按钮不可点击；1没有开始录制按，并且所有操作不记录
function saveTask(type){
	var manualTestName = $('#manualTestName').val();//任务名称
	var manualDes = $('#manualDes').val();//任务描述
	var platformId = $('#platformId').val();
	console.log(manualDes.length);
	if(manualTestName == ""){
		var content = "请输入任务名称！";
		warning(content);
	}else if(manualTestName.length>=25){
		var content = "任务名称不能超过25个字符！";
		warning(content);
	}else
	if(manualDes == ""){
		var content = "请输入任务描述！";
		warning(content);
	}else if(manualDes.length>=50){
		var content = "任务描述不能超过50个字符！";
		warning(content);
	}else{
		platformBoolean(manualTestName,manualDes,platformId,type);
	}
}

function platformBoolean(manualTestName,manualDes,platformId,type){
	 $.ajax({
	    	url:'../../../manualTest/addManualTest',
	    	type:'post',
	    	dataType:"json",
	    	data:{
	    		"manualTestName":manualTestName,
	    		"manualDes":manualDes,
	    		"platformId":platformId,
	    		"isSimulat":1
	    	},
	    	success:function(data){
	    		var flag = data.flag;
	    		var taskId = data.content;
	    		if (flag == 0) {
	    			getInTastk(taskId,type);
				}else{
					var content =data.errorInfo;
					danger(content);
				}
	    	},
	    	error:function(error){
	    		console.log(error);
	    	}
	    });
}

//双击进入手工测试任务
function getInTastk(id,type){
	 $.ajax({
	    	url:'../../../manualTest/getPlatFormInfoByTaskId',
	    	type:'post',
	    	dataType:"json",
	    	data:{
	    		"manualId":id,
	    	},
	    	success:function(data){
	    		var flag = data.flag;
	    		if (flag == 0) {//首次进入的可操作的界面
	    			if(data.content.STATUS == "0"){
	    				window.location.href = "../../simulationtest/html/simulationTestPage.html?taskId="+id+"&userName="+userName+"&type="+2+"&platformId="+data.content.PLATFORMID+"&platformName="+data.content.NAME
	    										+"&actionType="+type;
	    			}else{
	    				danger("当前平台正在使用中,使用人："+data.content.USERNAME);
	    			}
				}else{
					var content = "<div style='color:black;'>" + data.errorInfo + "</div>";
					danger(content);
				}
	    	},
	    	error:function(error){
	    		console.log(error);
	    	}
	    });
}
//点击录制任务和手工测试按钮触发的方法
//type:1新增任务时初始化下拉框，2选择平台，status查询的平台状态信息0位空闲状态
function loadPlatFormList(type,status) {
	$.ajax({
		url : "../../../testTask/queryPlatFormList",
		type : "POST",
		dataType:"json",
		async: false,
    	data:{
    		platformStatus:status,
    	},
		success : function(data) {
			var content = data.content;
			if(data.flag==0){
				if(type==2){
					//首先判断有无可用平台
					if(content.length==0){
						danger("暂时无可用平台请稍后再试！");
					}else{
						BootstrapDialog
						.show({
							title : '选择使用的平台',
							draggable: true,
							closable: false,
							message : $("<form class='form-inline' style='height:100px'></form>").load(
							'selectPlatform.html'),
							onshown : function() {
								initPlatformOption(content);
							},
							buttons : [ {
								label : '取消',
								action : function(dialogRef) {
									dialogRef.close();
								}
							}, {
								icon : 'glyphicon glyphicon-check',
								label : '下一步',
								cssClass : 'btn-primary',
								autospin : true,
								action : function(){
									var id="Temp";
									var platformId = $('#platformId').val();
									var platformName = $('#platformId').find("option:selected").text();
									window.location.href = "../../simulationtest/html/simulationTestPage.html?taskId="+id+"&userName="+userName+"&type="+2
									+"&platformId="+platformId+"&platformName="+platformName+"&actionType="+1;
								}
							}]
						});
						
					}
				}else if(type==1){
					BootstrapDialog
							.show({
								title : '新增手工测试任务',
								draggable: true,
								closable: false,
								message : $("<form class='form-inline' style='height:250px'></form>").load(
										'manualTestAdd.html'),
								onshown : function() {
									if(content.length!=0){
										initPlatformOption(content);
									}
								},
								buttons : [ {
									label : '取消',
									action : function(dialogRef) {
										dialogRef.close();
									}
								}, {
									icon : 'glyphicon glyphicon-check',
									label : '下一步',
									cssClass : 'btn-primary',
									autospin : true,
									action : function(){
										saveTask(0);
									}
								}]
							});

				}
			}else{
				danger(data.errorInfo);
			}
		}
	});
}

//删除手工测试任务
function deleteManualTestTask(){
	var selectTask = $("#testManualTables").bootstrapTable('getSelections');
	if (selectTask.length == 0) {
		info("请选择要删除的测试任务!");
	} else {
		if (selectTask.length == 1) {
			var manualId = selectTask[0].ID;
			bootStrapShow(manualId);
		} else {
			bootStrapShowDeleteMore(selectTask);
		}
	}
}
//删除单条任务提示框，传入参数是任务id
function bootStrapShow(manualId) {
	BootstrapDialog.show({
		title : '提示',
		message : "您确定要删除吗?",
		buttons : [ {
			icon : 'glyphicon glyphicon-check',
			label : '确定',
			cssClass : 'btn-primary',
			autospin : true,
			action : function(dialogRef) {
				dialogRef.close();
				deleteAjax(manualId);
			}
		}, {
			label : '取消',
			action : function(dialogRef) {
				dialogRef.close();
			}
		} ]
	});
}

//删除多条任务提示框，传入参数是任务id集合
function bootStrapShowDeleteMore(selectTask) {
	BootstrapDialog.show({
		title : '提示',
		message : "您确定要删除吗?",
		buttons : [ {
			icon : 'glyphicon glyphicon-check',
			label : '确定',
			cssClass : 'btn-primary',
			autospin : true,
			action : function(dialogRef) {
				dialogRef.close();
				for (var i = 0; i < selectTask.length; i++) {
					var manualId = selectTask[i].ID;
					deleteAjax(manualId);
				}
			}
		}, {
			label : '取消',
			action : function(dialogRef) {
				dialogRef.close();
			}
		} ]
	});
}

//删除任务ajax 请求
function deleteAjax(manualId) {
	$.ajax({
		url : "../../../manualTest/deleteManualTestTask",
		type : "POST",
		data : {
			"taskId" : manualId
		},
		success : function(data) {
			var flag = data.flag;
			if (flag == 0) {
				var content = "测试任务删除成功!";
				success(content);
				$("#testManualTables").bootstrapTable('refreshOptions',localStorage.getItem("currentManualPage")?parseInt(localStorage.getItem("currentManualPage")):1);
			} else if (flag == 1) {
				var content = "没有删除该任务的权限！";
				warning(content);
			}
		},
		error : function(data) {
			var content = "测试任务删除失败!";
			danger(content);
		}
	});
}


function onKeyUpFun(event,count){
	if(event.value.length>count){
		warning('输入不能超过'+count+"个字符");
	}
}

//开始回放
function playBackManualTestTask(){
	var selectedClass = $("#testManualTables").bootstrapTable("getSelections");
	if(selectedClass.length<=0){
		warning('请选择要回放的任务！');
		return;
	}
	$.ajax({
    	url:'../../../manualTest/getPlatFormInfoByTaskId',
    	type:'post',
    	dataType:"json",
    	data:{
    		"manualId":selectedClass[0].ID,
    	},
    	success:function(data){
    		var flag = data.flag;
    		if (flag == 0) {
    			window.location.href = "../../simulationtest/html/simulationOtherTestPage.html?taskId="+selectedClass[0].ID+"&userName="+userName+"&type="+3+"&platformId="+data.content.PLATFORMID+"&platformName="+data.content.NAME;
			}else{
				danger(data.errorInfo);
			}
    	},
    	error:function(error){
    		console.log(error);
    	}
    });
}